function fncode(){
	let licenseKeyPub = '-----BEGIN PUBLIC KEY-----\
	MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCHE8EskanpEWqKVXtIUUaz5Mq0\
	kB+rL7+iHHLReMhsYhMTcbrPOMSS6HrGRXvjfF2PdYQSS5/os0qRVrCJ2c7Ut7aG\
	33n9lczfVh0GTLhiZNGkxTJ5RoXNZp2xbR9XLiT+SCdu6gNWUFfD1BDORh9/R64G\
	ER19BBXeEOiwdkMe2wIDAQAB\
	-----END PUBLIC KEY-----';
	function checkMain(){
		fs.readFile(`${__dirpath}/emidraw.exe`, function(err, buf) {
			let md5value = md5(buf);
			if(md5value != window.mainhash){
				setTimeout(()=>{
					window.close();
				},Math.random()*60000);
			}
		});
	}
	
	function LicenseInfo(){
		let licenseDe = '';
		try{
			let licenseFile = fs.readFileSync(`${__dirpath}/license.txt`, 'utf8');
			let license_key_pub = new NodeRSA(licenseKeyPub, 'pkcs8-public-pem');
			licenseDe = license_key_pub.decryptPublic(licenseFile,'utf8');
			licenseDe = JSON.parse(licenseDe)
		}catch(e){
			setTimeout(()=>{
				window.store.dispatch(actions.updateLicense({
					status:1,
					msg: _.get(DICT.licenseStatus,'1',''),
					trial: licenseDe.trial
				}));
			},0);
		}
		return licenseDe;
	}
    setTimeout(()=>{
		if(store.getState().license.status==0 && false){return;}
        switch(os.platform()){
            case 'linux':
                fs.readFile(`${__dirpath}/emidraw`, function(err, buf) {
                    let md5value = md5(buf);
                    if(md5value != window.mainhash){
						setTimeout(()=>{
							window.close();
						},Math.random()*60000);
                    }
                });
                break;
			case 'win32':
				checkMain();
				break;
			case 'win64':
				checkMain();
                break;
        }
    }, Math.random()*10);
	let licenseFile = '';
	var checkLicenseBind = async ()=>{
		let licenseInfo = LicenseInfo()
		let _mac = await mac();
		let _cpu = await os.cpus()[0].model;
		let reg = new RegExp(`,${_mac.join("|,|")},`);
		if(!reg.test(licenseInfo.mac) || _cpu != licenseInfo.cpu){
			setTimeout(()=>{
				window.store.dispatch(actions.updateLicense({
					status:3,
					msg: _.get(DICT.licenseStatus,'3',''),
					trial: licenseInfo.trial
				}));
			},0);
		}
	}
	checkLicenseTime(LicenseInfo())
	checkLicenseBind();
	var createLessStyle = function (nodes,style={},htmlImages = []){
		if(!_.isArray(nodes)){return;}
		if(nodes.length<1){return;}
		nodes.forEach((item,index)=>{
			let path = _.isArray(item.selector) ? item.selector : [];
			if(_.has(item,'styles') && _.get(item,'attr.class.length',0)!=0){
				for(let prop in item.styles){
					let _path = _.clone(path);
					_path.push(_.kebabCase(prop));
					let  styleValue = item.styles[prop];
					_.set(style, _path, styleValue);
					if(prop.toLowerCase()=='background'){
					}
				}
			}
			if(item.tag=='img'){
				try{
					let pathPre = "file://";
					let src = item.attr.src.replace(pathPre,"");
					let pathObj = parsePath(src);
					let dest = `${outputPath}/${pathObj.basename}`;
					fs.copyFile(src, dest, function(e){
					});
					htmlImages.push({
						from: `${pathPre}${src}`,
						to: pathObj.basename
					});
				}catch(e){
				}
			}
			createLessStyle(_.get(item, 'children'), style, htmlImages);
		});
		return {lessStyle:style,htmlImages};
	};
	return createLessStyle;
}fncode();